package com.example.demo.modules.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.modules.entity.DeviceInfo;
import com.example.demo.modules.mapper.DeviceInfoMapper;
import com.example.demo.modules.service.IDeviceInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author zhengyingya
 * @since 2023-04-12
 */
@Service
public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceInfo> implements IDeviceInfoService {
    @Override
    public boolean saveDeviceInfo(DeviceInfo deviceInfo) {
        // 先判断表中是否存在当前设备的数据，如果存在，就修改connect_status等数据，如果不存在，就要新增一条数据
        // 通过getOne方法先去表中查询，按device_name字段查询，这里的getOne是mybatisplus方法，可以直接调用
        if (getOne(new QueryWrapper<DeviceInfo>().eq("device_name", deviceInfo.getDeviceName()))==null) {
            return save(deviceInfo);  // 如果不存在，就通过save方法在表中插入一条新数据，save也是mybatisplus方法，可以直接调用
        } else {
            QueryWrapper<DeviceInfo> queryWrapper = new QueryWrapper<DeviceInfo>().eq("device_name", deviceInfo.getDeviceName());
            // 如果存在，就通过update方法更新表中对应的数据，update也是mybatisplus方法，可以直接调用
            return update(deviceInfo, queryWrapper);
        }
    }
}
